﻿//using System;
//using System.Net;
//using System.Windows;
//using System.Windows.Controls;
//using System.Windows.Documents;
//using System.Windows.Ink;
//using System.Windows.Input;
//using System.Windows.Media;
//using System.Windows.Media.Animation;
//using System.Windows.Shapes;
//using System.Windows.Media.Imaging;

//namespace TheOliver.Controls
//{
//    public class SimpleDottedBackground : UserControl
//    {
//        public double XFactor
//        {
//            get { return (double)GetValue(XFactorProperty); }
//            set { SetValue(XFactorProperty, value); }
//        }

//        public static readonly DependencyProperty XFactorProperty =
//            DependencyProperty.Register(
//                "XFactor", 
//                typeof(double), 
//                typeof(SimpleDottedBackground), 
//                new PropertyMetadata(5.0));

//        public double YFactor
//        {
//            get { return (double)GetValue(YFactorProperty); }
//            set { SetValue(YFactorProperty, value); }
//        }

//        public static readonly DependencyProperty YFactorProperty =
//            DependencyProperty.Register(
//                "YFactor", 
//                typeof(double), 
//                typeof(SimpleDottedBackground), 
//                new PropertyMetadata(5.0));

//        public Color DotColor
//        {
//            get { return (Color)GetValue(DotColorProperty); }
//            set { SetValue(DotColorProperty, value); }
//        }

//        public static readonly DependencyProperty DotColorProperty =
//            DependencyProperty.Register(
//                "DotColor",
//                typeof(Color), 
//                typeof(SimpleDottedBackground), 
//                new PropertyMetadata(Colors.Red));

//        bool _done = false;
//        protected override Size ArrangeOverride(Size finalSize)
//        {
//            //if (finalSize.Width > 0)
//            //{
//            //    //if (!_done)
//            //    //{
//            //    CreateBackground(finalSize);
//            //    _done = true;
//            //    //}
//            //}
//            return base.ArrangeOverride(finalSize);
//        }

//        public override void OnApplyTemplate()
//        {
//            //CreateBackground(new Size(this.ActualWidth, this.ActualHeight));

//            base.OnApplyTemplate();
//        }

//        public SimpleDottedBackground()
//        {
//            this.LayoutUpdated += (s, e) =>
//                {
//                    CreateBackground(new Size(this.ActualWidth, this.ActualHeight));
//                };
//        }
        
//        private void CreateBackground(Size finalSize)
//        {
//            int width = (int)finalSize.Width;
//            int height = (int)finalSize.Height;
//            WriteableBitmap wb = new WriteableBitmap(width, height);

//            for (int x = 0; x < width; x++)
//            {
//                for (int y = 0; y < height; y++)
//                {
//                    int pixel = x + y * width;
//                    if (pixel / XFactor == 0.0)
//                    {
//                        wb.Pixels[pixel] = Color2Int(DotColor);
//                    }
//                }
//            }
//            //Image image = new Image();
//            //image.Source = wb;

//            Rectangle rect = new Rectangle();
//            rect.Fill = new SolidColorBrush(DotColor);
//            this.Content = rect;
//        }

//        private int Color2Int(Color color)
//        {
//            int result;

//            result =
//                ((color.A << 24) | 
//                (color.R << 16) |
//                (color.G << 8)  | 
//                (color.B << 0));

//            return result;
//        }
//    }
//}
